package main

import "reflect"

type WeiBo struct {
	Ok   int `json:"ok"`
	Data struct {
		CardlistInfo struct {
			Containerid string `json:"containerid"`
			VP          int    `json:"v_p"`
			ShowStyle   int    `json:"show_style"`
			Total       int    `json:"total"`
			SinceId     int64  `json:"since_id"`
		} `json:"cardlistInfo"`
		Cards []struct {
			CardType int    `json:"card_type"`
			Itemid   string `json:"itemid"`
			Scheme   string `json:"scheme"`
			Mblog    struct {
				Visible struct {
					Type   int `json:"type"`
					ListId int `json:"list_id"`
				} `json:"visible"`
				CreatedAt                string        `json:"created_at"`
				Id                       string        `json:"id"`
				Mid                      string        `json:"mid"`
				CanEdit                  bool          `json:"can_edit"`
				ShowAdditionalIndication int           `json:"show_additional_indication"`
				Text                     string        `json:"text"`
				TextLength               int           `json:"textLength,omitempty"`
				Source                   string        `json:"source"`
				Favorited                bool          `json:"favorited"`
				PicIds                   []interface{} `json:"pic_ids"`
				PicTypes                 string        `json:"pic_types"`
				IsPaid                   bool          `json:"is_paid"`
				MblogVipType             int           `json:"mblog_vip_type"`
				User                     struct {
					Id                int64  `json:"id"`
					ScreenName        string `json:"screen_name"`
					ProfileImageUrl   string `json:"profile_image_url"`
					ProfileUrl        string `json:"profile_url"`
					StatusesCount     int    `json:"statuses_count"`
					Verified          bool   `json:"verified"`
					VerifiedType      int    `json:"verified_type"`
					VerifiedTypeExt   int    `json:"verified_type_ext"`
					VerifiedReason    string `json:"verified_reason"`
					CloseBlueV        bool   `json:"close_blue_v"`
					Description       string `json:"description"`
					Gender            string `json:"gender"`
					Mbtype            int    `json:"mbtype"`
					Urank             int    `json:"urank"`
					Mbrank            int    `json:"mbrank"`
					FollowMe          bool   `json:"follow_me"`
					Following         bool   `json:"following"`
					FollowCount       int    `json:"follow_count"`
					FollowersCount    string `json:"followers_count"`
					FollowersCountStr string `json:"followers_count_str"`
					CoverImagePhone   string `json:"cover_image_phone"`
					AvatarHd          string `json:"avatar_hd"`
					Like              bool   `json:"like"`
					LikeMe            bool   `json:"like_me"`
					Badge             struct {
						BindTaobao               int `json:"bind_taobao"`
						Panda                    int `json:"panda"`
						UserNameCertificate      int `json:"user_name_certificate"`
						Hongbaofei2019           int `json:"hongbaofei_2019"`
						Suishoupai2019           int `json:"suishoupai_2019"`
						Hongrenjie2019           int `json:"hongrenjie_2019"`
						Dailv2019                int `json:"dailv_2019"`
						China2019                int `json:"china_2019"`
						Hongkong2019             int `json:"hongkong_2019"`
						Rrgyj2019                int `json:"rrgyj_2019"`
						Weishi2019               int `json:"weishi_2019"`
						Wbzy2019                 int `json:"wbzy_2019"`
						Starlight2019            int `json:"starlight_2019"`
						Daqi2019                 int `json:"daqi_2019"`
						Gongjiri2019             int `json:"gongjiri_2019"`
						Hongbao2020              int `json:"hongbao_2020"`
						Feiyan2020               int `json:"feiyan_2020"`
						Hope2020                 int `json:"hope_2020"`
						Daka2020                 int `json:"daka_2020"`
						Hongbaofeifuniu2021      int `json:"hongbaofeifuniu_2021"`
						Cuccidlam122021          int `json:"cuccidlam12_2021"`
						Hongbaofeijika2021       int `json:"hongbaofeijika_2021"`
						Weibozhiyexianxia2021    int `json:"weibozhiyexianxia_2021"`
						PartyCardidState         int `json:"party_cardid_state"`
						Aoyun2021                int `json:"aoyun_2021"`
						Yinyuejie212021          int `json:"yinyuejie21_2021"`
						Yingxionglianmengs112021 int `json:"yingxionglianmengs11_2021"`
						Weibozhiye2021           int `json:"weibozhiye_2021"`
						Weibozhiyebobao2021      int `json:"weibozhiyebobao_2021"`
					} `json:"badge"`
				} `json:"user"`
				RepostsCount          int           `json:"reposts_count"`
				CommentsCount         int           `json:"comments_count"`
				ReprintCmtCount       int           `json:"reprint_cmt_count"`
				AttitudesCount        int           `json:"attitudes_count"`
				PendingApprovalCount  int           `json:"pending_approval_count"`
				IsLongText            bool          `json:"isLongText"`
				RewardExhibitionType  int           `json:"reward_exhibition_type"`
				HideFlag              int           `json:"hide_flag"`
				Mlevel                int           `json:"mlevel"`
				DarwinTags            []interface{} `json:"darwin_tags"`
				Mblogtype             int           `json:"mblogtype"`
				Rid                   string        `json:"rid"`
				MoreInfoType          int           `json:"more_info_type"`
				ExternSafe            int           `json:"extern_safe"`
				NumberDisplayStrategy struct {
					ApplyScenarioFlag    int    `json:"apply_scenario_flag"`
					DisplayTextMinNumber int    `json:"display_text_min_number"`
					DisplayText          string `json:"display_text"`
				} `json:"number_display_strategy"`
				EnableCommentGuide bool `json:"enable_comment_guide"`
				ContentAuth        int  `json:"content_auth"`
				PicNum             int  `json:"pic_num"`
				AlchemyParams      struct {
					UgRedEnvelope bool `json:"ug_red_envelope"`
				} `json:"alchemy_params"`
				ReprintType       int  `json:"reprint_type"`
				CanReprint        bool `json:"can_reprint"`
				NewCommentStyle   int  `json:"new_comment_style"`
				MblogMenuNewStyle int  `json:"mblog_menu_new_style"`
				EditConfig        struct {
					Edited bool `json:"edited"`
				} `json:"edit_config"`
				IsTop int `json:"isTop,omitempty"`
				Title struct {
					Text      string `json:"text"`
					BaseColor int    `json:"base_color"`
				} `json:"title,omitempty"`
				Bid             string          `json:"bid"`
				RetweetedStatus RetweetedStatus `json:"retweeted_status,omitempty"`
				Cardid          string          `json:"cardid,omitempty"`
				RepostType      int             `json:"repost_type,omitempty"`
				RawText         string          `json:"raw_text,omitempty"`
				Version         int             `json:"version,omitempty"`
				SafeTags        int             `json:"safe_tags,omitempty"`
				Pid             int64           `json:"pid,omitempty"`
				Pidstr          string          `json:"pidstr,omitempty"`
				Mark            string          `json:"mark,omitempty"`
				OriginalPic     string          `json:"original_pic"`
				PageInfo        struct {
					Type       string `json:"type"`
					ObjectType int    `json:"object_type"`
					PagePic    struct {
						Url         string `json:"url"`
						Width       int    `json:"width,omitempty"`
						Pid         string `json:"pid,omitempty"`
						Source      int    `json:"source,omitempty"`
						IsSelfCover int    `json:"is_self_cover,omitempty"`
						Type        int    `json:"type,omitempty"`
						Height      int    `json:"height,omitempty"`
					} `json:"page_pic"`
					PageUrl          string `json:"page_url"`
					PageTitle        string `json:"page_title"`
					Content1         string `json:"content1"`
					Content2         string `json:"content2,omitempty"`
					UrlOri           string `json:"url_ori,omitempty"`
					ObjectId         string `json:"object_id,omitempty"`
					Title            string `json:"title,omitempty"`
					VideoOrientation string `json:"video_orientation,omitempty"`
					PlayCount        string `json:"play_count,omitempty"`
					MediaInfo        struct {
						StreamUrl   string  `json:"stream_url"`
						StreamUrlHd string  `json:"stream_url_hd"`
						Duration    float64 `json:"duration"`
					} `json:"media_info,omitempty"`
					Urls struct {
						Mp4720PMp4 string `json:"mp4_720p_mp4"`
						Mp4HdMp4   string `json:"mp4_hd_mp4"`
						Mp4LdMp4   string `json:"mp4_ld_mp4"`
					} `json:"urls,omitempty"`
				} `json:"page_info,omitempty"`
				Pics []struct {
					Pid  string `json:"pid"`
					Url  string `json:"url"`
					Size string `json:"size"`
					Geo  struct {
						Width  int  `json:"width"`
						Height int  `json:"height"`
						Croped bool `json:"croped"`
					} `json:"geo"`
					Large struct {
						Size string `json:"size"`
						Url  string `json:"url"`
						Geo  struct {
							Width  interface{} `json:"width"`
							Height interface{} `json:"height"`
							Croped bool        `json:"croped"`
						} `json:"geo"`
					} `json:"large"`
				} `json:"pics,omitempty"`
			} `json:"mblog"`
			LastWeiboCard bool `json:"lastWeiboCard,omitempty"`
		} `json:"cards"`
		Scheme      string `json:"scheme"`
		ShowAppTips int    `json:"showAppTips"`
	} `json:"data"`
}

type RetweetedStatus struct {
	Visible struct {
		Type   int `json:"type"`
		ListId int `json:"list_id"`
	} `json:"visible"`
	CreatedAt                string   `json:"created_at"`
	Id                       string   `json:"id"`
	Mid                      string   `json:"mid"`
	EditCount                int      `json:"edit_count,omitempty"`
	CanEdit                  bool     `json:"can_edit"`
	EditAt                   string   `json:"edit_at,omitempty"`
	Version                  int      `json:"version,omitempty"`
	ShowAdditionalIndication int      `json:"show_additional_indication"`
	Text                     string   `json:"text"`
	TextLength               int      `json:"textLength"`
	Source                   string   `json:"source"`
	Favorited                bool     `json:"favorited"`
	PicIds                   []string `json:"pic_ids"`
	PicTypes                 string   `json:"pic_types"`
	ThumbnailPic             string   `json:"thumbnail_pic,omitempty"`
	BmiddlePic               string   `json:"bmiddle_pic,omitempty"`
	OriginalPic              string   `json:"original_pic,omitempty"`
	IsPaid                   bool     `json:"is_paid"`
	MblogVipType             int      `json:"mblog_vip_type"`
	User                     struct {
		Id                int64  `json:"id"`
		ScreenName        string `json:"screen_name"`
		ProfileImageUrl   string `json:"profile_image_url"`
		ProfileUrl        string `json:"profile_url"`
		StatusesCount     int    `json:"statuses_count"`
		Verified          bool   `json:"verified"`
		VerifiedType      int    `json:"verified_type"`
		CloseBlueV        bool   `json:"close_blue_v"`
		Description       string `json:"description"`
		Gender            string `json:"gender"`
		Mbtype            int    `json:"mbtype"`
		Urank             int    `json:"urank"`
		Mbrank            int    `json:"mbrank"`
		FollowMe          bool   `json:"follow_me"`
		Following         bool   `json:"following"`
		FollowCount       int    `json:"follow_count"`
		FollowersCount    string `json:"followers_count"`
		FollowersCountStr string `json:"followers_count_str"`
		CoverImagePhone   string `json:"cover_image_phone"`
		AvatarHd          string `json:"avatar_hd"`
		Like              bool   `json:"like"`
		LikeMe            bool   `json:"like_me"`
		Badge             struct {
			UserNameCertificate      int `json:"user_name_certificate"`
			PartyCardidState         int `json:"party_cardid_state,omitempty"`
			BindTaobao               int `json:"bind_taobao,omitempty"`
			UnreadPool               int `json:"unread_pool,omitempty"`
			UnreadPoolExt            int `json:"unread_pool_ext,omitempty"`
			Panda                    int `json:"panda,omitempty"`
			WendaV2                  int `json:"wenda_v2,omitempty"`
			Dailv2018                int `json:"dailv_2018,omitempty"`
			RelationDisplay          int `json:"relation_display,omitempty"`
			Wbzy2018                 int `json:"wbzy_2018,omitempty"`
			Avengers2019             int `json:"avengers_2019,omitempty"`
			Suishoupai2019           int `json:"suishoupai_2019,omitempty"`
			Wusi2019                 int `json:"wusi_2019,omitempty"`
			Hongrenjie2019           int `json:"hongrenjie_2019,omitempty"`
			China2019                int `json:"china_2019,omitempty"`
			Hongkong2019             int `json:"hongkong_2019,omitempty"`
			Taohuayuan2019           int `json:"taohuayuan_2019,omitempty"`
			Dzwbqlx2019              int `json:"dzwbqlx_2019,omitempty"`
			Rrgyj2019                int `json:"rrgyj_2019,omitempty"`
			Weishi2019               int `json:"weishi_2019,omitempty"`
			Wbzy2019                 int `json:"wbzy_2019,omitempty"`
			Starlight2019            int `json:"starlight_2019,omitempty"`
			Gongjiri2019             int `json:"gongjiri_2019,omitempty"`
			Hongbao2020              int `json:"hongbao_2020,omitempty"`
			Feiyan2020               int `json:"feiyan_2020,omitempty"`
			PcNew                    int `json:"pc_new,omitempty"`
			Kfc2020                  int `json:"kfc_2020,omitempty"`
			Movie2020                int `json:"movie_2020,omitempty"`
			Cuccidlam122021          int `json:"cuccidlam12_2021,omitempty"`
			Hongbaofeijika2021       int `json:"hongbaofeijika_2021,omitempty"`
			Weibozhiyexianxia2021    int `json:"weibozhiyexianxia_2021,omitempty"`
			Gaokao2021               int `json:"gaokao_2021,omitempty"`
			Aoyun2021                int `json:"aoyun_2021,omitempty"`
			Yingxionglianmengs112021 int `json:"yingxionglianmengs11_2021,omitempty"`
			China2020                int `json:"china_2020,omitempty"`
			GongyiLevel              int `json:"gongyi_level,omitempty"`
			NationalDay2018          int `json:"national_day_2018,omitempty"`
			School2020               int `json:"school_2020,omitempty"`
			BrandAccount2021         int `json:"brand_account_2021,omitempty"`
			CompanionCard            int `json:"companion_card,omitempty"`
			Weibozhiyebobao2021      int `json:"weibozhiyebobao_2021,omitempty"`
			Yuanlongping2021         int `json:"yuanlongping_2021,omitempty"`
			Ylpshuidao2021           int `json:"ylpshuidao_2021,omitempty"`
			Fishfarm2021             int `json:"fishfarm_2021,omitempty"`
			Suishoupai2018           int `json:"suishoupai_2018,omitempty"`
			Worldcup2018             int `json:"worldcup_2018,omitempty"`
			Qixi2018                 int `json:"qixi_2018,omitempty"`
			Dailv2020                int `json:"dailv_2020,omitempty"`
			Hongbaofeifuniu2021      int `json:"hongbaofeifuniu_2021,omitempty"`
			Dailv                    int `json:"dailv,omitempty"`
			Zongyiji                 int `json:"zongyiji,omitempty"`
			Dzwbqlx2016              int `json:"dzwbqlx_2016,omitempty"`
			FollowWhitelistVideo     int `json:"follow_whitelist_video,omitempty"`
			Wenchuan10Th             int `json:"wenchuan_10th,omitempty"`
			WeiboDisplayFans         int `json:"weibo_display_fans,omitempty"`
			Hongbaofei2019           int `json:"hongbaofei_2019,omitempty"`
			Fu2019                   int `json:"fu_2019,omitempty"`
			Kangyi2020               int `json:"kangyi_2020,omitempty"`
			Weibozhiye2020           int `json:"weibozhiye_2020,omitempty"`
			Lvzhilingyang2021        int `json:"lvzhilingyang_2021,omitempty"`
			Travel2017               int `json:"travel_2017,omitempty"`
			Gongyi2020               int `json:"gongyi_2020,omitempty"`
		} `json:"badge"`
		VerifiedTypeExt int    `json:"verified_type_ext,omitempty"`
		VerifiedReason  string `json:"verified_reason,omitempty"`
	} `json:"user"`
	PicStatus            string `json:"picStatus,omitempty"`
	RepostsCount         int    `json:"reposts_count"`
	CommentsCount        int    `json:"comments_count"`
	ReprintCmtCount      int    `json:"reprint_cmt_count"`
	AttitudesCount       int    `json:"attitudes_count"`
	PendingApprovalCount int    `json:"pending_approval_count"`
	IsLongText           bool   `json:"isLongText"`
	RewardExhibitionType int    `json:"reward_exhibition_type"`
	HideFlag             int    `json:"hide_flag"`
	Mlevel               int    `json:"mlevel"`
	TopicId              string `json:"topic_id,omitempty"`
	SyncMblog            bool   `json:"sync_mblog,omitempty"`
	IsImportedTopic      bool   `json:"is_imported_topic,omitempty"`
	DarwinTags           []struct {
		ObjectType    string      `json:"object_type"`
		ObjectId      string      `json:"object_id"`
		DisplayName   string      `json:"display_name"`
		EnterpriseUid interface{} `json:"enterprise_uid"`
		BdObjectType  string      `json:"bd_object_type"`
		PcUrl         string      `json:"pc_url,omitempty"`
		MapiUrl       string      `json:"mapi_url,omitempty"`
	} `json:"darwin_tags"`
	Mblogtype             int    `json:"mblogtype"`
	Rid                   string `json:"rid"`
	MoreInfoType          int    `json:"more_info_type"`
	NumberDisplayStrategy struct {
		ApplyScenarioFlag    int    `json:"apply_scenario_flag"`
		DisplayTextMinNumber int    `json:"display_text_min_number"`
		DisplayText          string `json:"display_text"`
	} `json:"number_display_strategy"`
	ContentAuth     int  `json:"content_auth"`
	PicNum          int  `json:"pic_num"`
	ReprintType     int  `json:"reprint_type"`
	CanReprint      bool `json:"can_reprint"`
	NewCommentStyle int  `json:"new_comment_style"`
	EditConfig      struct {
		Edited          bool `json:"edited"`
		MenuEditHistory struct {
			Scheme string `json:"scheme"`
			Title  string `json:"title"`
		} `json:"menu_edit_history,omitempty"`
	} `json:"edit_config"`
	PageInfo struct {
		Type       string `json:"type"`
		ObjectType int    `json:"object_type"`
		PagePic    struct {
			Url         string `json:"url"`
			Width       int    `json:"width,omitempty"`
			Pid         string `json:"pid,omitempty"`
			Source      int    `json:"source,omitempty"`
			IsSelfCover int    `json:"is_self_cover,omitempty"`
			Type        int    `json:"type,omitempty"`
			Height      int    `json:"height,omitempty"`
		} `json:"page_pic"`
		PageUrl          string `json:"page_url"`
		PageTitle        string `json:"page_title"`
		Content1         string `json:"content1"`
		Content2         string `json:"content2,omitempty"`
		UrlOri           string `json:"url_ori,omitempty"`
		ObjectId         string `json:"object_id,omitempty"`
		Title            string `json:"title,omitempty"`
		VideoOrientation string `json:"video_orientation,omitempty"`
		PlayCount        string `json:"play_count,omitempty"`
		MediaInfo        struct {
			StreamUrl   string  `json:"stream_url"`
			StreamUrlHd string  `json:"stream_url_hd"`
			Duration    float64 `json:"duration"`
		} `json:"media_info,omitempty"`
		Urls struct {
			Mp4720PMp4 string `json:"mp4_720p_mp4"`
			Mp4HdMp4   string `json:"mp4_hd_mp4"`
			Mp4LdMp4   string `json:"mp4_ld_mp4"`
		} `json:"urls,omitempty"`
	} `json:"page_info,omitempty"`
	Pics []struct {
		Pid  string `json:"pid"`
		Url  string `json:"url"`
		Size string `json:"size"`
		Geo  struct {
			Width  int  `json:"width"`
			Height int  `json:"height"`
			Croped bool `json:"croped"`
		} `json:"geo"`
		Large struct {
			Size string `json:"size"`
			Url  string `json:"url"`
			Geo  struct {
				Width  interface{} `json:"width"`
				Height interface{} `json:"height"`
				Croped bool        `json:"croped"`
			} `json:"geo"`
		} `json:"large"`
	} `json:"pics,omitempty"`
	Bid        string `json:"bid"`
	Cardid     string `json:"cardid,omitempty"`
	SafeTags   int    `json:"safe_tags,omitempty"`
	AdState    int    `json:"ad_state,omitempty"`
	ExpireTime int    `json:"expire_time,omitempty"`
	Mark       string `json:"mark,omitempty"`
}

func (r RetweetedStatus) IsEmpty() bool {
	return reflect.DeepEqual(r, RetweetedStatus{})
}
